package com.pucheng.bracelet.app.event

import androidx.lifecycle.MutableLiveData
import com.blankj.utilcode.util.LogUtils
import com.blankj.utilcode.util.SPUtils
import com.pucheng.bracelet.app.util.CacheUtil
import com.pucheng.bracelet.data.bean.WatchInfoBean
import com.zaaach.citypicker.model.City
import me.hgj.jetpackmvvm.base.appContext
import me.hgj.jetpackmvvm.base.viewmodel.BaseViewModel
import me.hgj.jetpackmvvm.callback.livedata.UnPeekLiveData
import me.hgj.jetpackmvvm.demo.app.util.SettingUtil

/**
 * 作者　: hegaojian
 * 时间　: 2019/12/23
 * 描述　:APP全局的ViewModel，可以存放公共数据，当他数据改变时，所有监听他的地方都会收到回调,也可以做发送消息
 * 比如 全局可使用的 地理位置信息，账户信息,App的基本配置等等，
 */
class AppViewModel : BaseViewModel() {

    //App的账户信息
//    var userinfo = UnPeekLiveData<UserInfo>()

    //App主题颜色 中大型项目不推荐以这种方式改变主题颜色，比较繁琐耦合，且容易有遗漏某些控件没有设置主题色
    var appColor = UnPeekLiveData<Int>()

    //App 列表动画
    var appAnimation = UnPeekLiveData<Int>()

    var watchInfo = UnPeekLiveData<WatchInfoBean>()
    var stepsFlag = UnPeekLiveData<String>()
    var bleConnectStatus = UnPeekLiveData<Boolean>().apply {
        value = false
    }
    var batteryStatus = UnPeekLiveData<Int>()

    var selectCity = MutableLiveData<City>()
    var isCheckWeather = MutableLiveData<Boolean>()

    var locationInfo = MutableLiveData<City>().apply {
        value = City("深圳", "中国", "101280601")
    }

    init {
        //默认值保存的账户信息，没有登陆过则为null
//        userinfo.value = CacheUtil.getUser()
        //默认值颜色
        appColor.value = SettingUtil.getColor(appContext)
        //初始化列表动画
        appAnimation.value = SettingUtil.getListMode()
        //初始化手环信息
        watchInfo.value = CacheUtil.getWatchInfo()
        //初始化步数目标信息
        stepsFlag.value = CacheUtil.getStepsFlag()
        //蓝牙连接状态
        bleConnectStatus.value = false
        //蓝牙电量
        batteryStatus.value = 0
        //选中的城市
        selectCity.value = CacheUtil.getCityInfo()
        isCheckWeather.value = CacheUtil.isCheckWeather()
    }
}